class NODE create
	make
feature
	parent : NODE
	children : LINKED_LIST[NODE]
	value    : STRING
	add_child(c : NODE) is 
	do
		children.add_last(c)
	end
	make(v : STRING; p : NODE) is
		do
			!!value.copy(v)
			parent := p
			!!children.make
		end
	dump : STRING is
	local
		print_this : STRING
		i : INTEGER
	do
		print_this := value
		from i := 1 until i > children.count
			loop
				print_this := print_this + " " + children.item(i).dump
				i := i + 1
			end
		if children.count > 0 then
			print_this := "(" + print_this + ")"
		end
		Result := print_this
	end
	
end